﻿
namespace SistemaLogistica.Business.Logic
{
    using System;
    using System.Collections.Generic;
    using SistemaLogistica.Business.Entities;
    using SistemaLogistica.DataAccess;

    public class SucursalManager
    {
        private SucursalManager() { }

        private static readonly SucursalManager instancia = new SucursalManager();

        public static SucursalManager Instancia
        {
            get { return instancia; }
        }

        public List<Sucursal> Listar()
        {
            try
            {
                return SucursalData.Instancia.Listar();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<Sucursal> Buscar(string nombre)
        {
            try
            {
                return SucursalData.Instancia.Buscar(nombre);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<Sucursal> ListarPorUbigeo(int ubigeoID)
        {
            try
            {
                return SucursalData.Instancia.ListarPorUbigeo(ubigeoID);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public Sucursal ObtenerPorID(int sucursalID)
        {
            try
            {
                return SucursalData.Instancia.ObtenerPorID(sucursalID);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Agregar(Sucursal sucursal)
        {
            try
            {
                SucursalData.Instancia.Agregar(sucursal);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Modificar(Sucursal sucursal)
        {
            try
            {
                SucursalData.Instancia.Modificar(sucursal);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Eliminar(int sucursalID)
        {
            try
            {
                SucursalData.Instancia.Eliminar(sucursalID);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool ExistePrincipal()
        {
            try
            {
                return SucursalData.Instancia.ExistePrincipal();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
